package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.LabinfoItemData;
import com.ruoyi.system.domain.LabinfoSampleData;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.util.List;
import java.util.Map;

public interface LabinfoItemDataMapper {

    /**
     * 查询【项目】
     *
     * @param id 【项目】主键
     * @return 【项目】
     */
    public LabinfoItemData selectLabinfoItemDataById(Long id);

    /**
     * 查询【项目】列表
     *
     * @param labinfoItemData 【项目】
     * @return 【项目】集合
     */
    public List<LabinfoItemData> selectLabinfoItemDataList(LabinfoItemData labinfoItemData);

    /**
     * 新增【项目】
     *
     * @param labinfoItemData 【项目】
     * @return 结果
     */
    public int insertLabinfoItemData(LabinfoItemData labinfoItemData);

    /**
     * 修改【项目】
     *
     * @param labinfoItemData 【项目】
     * @return 结果
     */
    public int updateLabinfoItemData(LabinfoItemData labinfoItemData);

    /**
     * 删除【项目】
     *
     * @param id 【项目】主键
     * @return 结果
     */
    public int deleteLabinfoItemDataById(Long id);

    /**
     * 批量删除【项目】
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLabinfoItemDataByIds(Long[] ids);


    List<LabinfoItemData> getItemByReceiveDate(@Param("sjdwName") String sjdwName, @Param("patientPhone") String patientPhone,
                                               @Param("receiveSampleDate") String receiveSampleDate,@Param("sjys") String sjys);

    /**
     * 查询列表（注册用户所见页面）
     */
    public List<Map> getItemListBySampleDecWay1(LabinfoItemData labinfoItemData);

    /**
     * 查询列表（注册用户所见页面）
     */
    public List<LabinfoItemData> getItemListBySampleDecWay2(@Param("sampleDecWay") String sampleDecWay,
                                                            @Param("sjys") String sjys, @Param("deptId") Long deptId,@Param("userId") String userId,@Param("searchValue") String searchValue);


    List<Map> getReceiveItemDateList(@Param("sjdwName") String sjdwName,@Param("patientPhone") String patientPhone);


    //根据送检码查询对应的信息
    LabinfoItemData getItemBySampleBoxCode(@Param("sampleBoxCode") String sampleBoxCode);

    int updateReportSchedule(LabinfoItemData labinfoItemData);

    Long selectIdBySampleSerialNumber(@Param("sampleSerialNumber") String sampleSerialNumber);

    public List<Map> getLabinfoItemDataList(LabinfoItemData labinfoItemData);


    public List<LabinfoItemData> selectLabinfoItemDataListByReportingDateisNull();
}
